{
 "cells": [
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "MBPO 算法在这两个观察的基础之上，提出只使用模型来从之前访问过的真实状态开始进行较短步数的推演，而非从初始状态开始进行完整的推演。这就是 MBPO 中的分支推演（branched rollout）的概念，即在原来真实环境中采样的轨迹上面推演出新的“短分支”。这样做可以使模型的累积误差不至于过大，从而保证最后的采样效率和策略表现。\n",
    "\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 导包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import gymnasium as gym\n",
    "from collections import namedtuple\n",
    "import itertools\n",
    "from itertools import count\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.distributions.normal import Normal\n",
    "import numpy as np\n",
    "import collections\n",
    "import random\n",
    "import matplotlib.pyplot as plt\n",
    "import logging"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# SAC算法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class PolicyNet(torch.nn.Module):\n",
    "    def __init__(self, state_dim, hidden_dim, action_dim, action_bound):\n",
    "        super(PolicyNet, self).__init__()\n",
    "        self.fc1 = torch.nn.Linear(state_dim, hidden_dim)\n",
    "        self.fc_mu = torch.nn.Linear(hidden_dim, action_dim)\n",
    "        self.fc_std = torch.nn.Linear(hidden_dim, action_dim)\n",
    "        self.action_bound = action_bound\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = F.relu(self.fc1(x))\n",
    "        mu = self.fc_mu(x)\n",
    "        std = F.softplus(self.fc_std(x))\n",
    "        dist = Normal(mu, std)\n",
    "        normal_sample = dist.rsample()  # rsample()是重参数化采样函数\n",
    "        log_prob = dist.log_prob(normal_sample)\n",
    "        action = torch.tanh(normal_sample)  # 计算tanh_normal分布的对数概率密度\n",
    "        log_prob = log_prob - torch.log(1 - torch.tanh(action).pow(2) + 1e-7)\n",
    "        action = action * self.action_bound\n",
    "        return action, log_prob\n",
    "\n",
    "\n",
    "class QValueNet(torch.nn.Module):\n",
    "    def __init__(self, state_dim, hidden_dim, action_dim):\n",
    "        super(QValueNet, self).__init__()\n",
    "        self.fc1 = torch.nn.Linear(state_dim + action_dim, hidden_dim)\n",
    "        self.fc2 = torch.nn.Linear(hidden_dim, 1)\n",
    "\n",
    "    def forward(self, x, a):\n",
    "        cat = torch.cat([x, a], dim=1)  # 拼接状态和动作\n",
    "        x = F.relu(self.fc1(cat))\n",
    "        return self.fc2(x)\n",
    "\n",
    "\n",
    "device = torch.device(\"cuda\") if torch.cuda.is_available() else torch.device(\"cpu\")\n",
    "\n",
    "\n",
    "class SAC:\n",
    "    ''' 处理连续动作的SAC算法 '''\n",
    "    def __init__(self, state_dim, hidden_dim, action_dim, action_bound,\n",
    "                 actor_lr, critic_lr, alpha_lr, target_entropy, tau, gamma):\n",
    "        self.actor = PolicyNet(state_dim, hidden_dim, action_dim, action_bound).to(device)  # 策略网络\n",
    "        # 第一个Q网络\n",
    "        self.critic_1 = QValueNet(state_dim, hidden_dim, action_dim).to(device)\n",
    "        # 第二个Q网络\n",
    "        self.critic_2 = QValueNet(state_dim, hidden_dim, action_dim).to(device)\n",
    "        self.target_critic_1 = QValueNet(state_dim, hidden_dim, action_dim).to(device)  # 第一个目标Q网络\n",
    "        self.target_critic_2 = QValueNet(state_dim, hidden_dim, action_dim).to(device)  # 第二个目标Q网络\n",
    "        # 令目标Q网络的初始参数和Q网络一样\n",
    "        self.target_critic_1.load_state_dict(self.critic_1.state_dict())\n",
    "        self.target_critic_2.load_state_dict(self.critic_2.state_dict())\n",
    "        self.actor_optimizer = torch.optim.Adam(self.actor.parameters(), lr=actor_lr)\n",
    "        self.critic_1_optimizer = torch.optim.Adam(self.critic_1.parameters(), lr=critic_lr)\n",
    "        self.critic_2_optimizer = torch.optim.Adam(self.critic_2.parameters(), lr=critic_lr)\n",
    "        # 使用alpha的log值,可以使训练结果比较稳定\n",
    "        self.log_alpha = torch.tensor(np.log(0.01), dtype=torch.float)\n",
    "        self.log_alpha.requires_grad = True  # 可以对alpha求梯度\n",
    "        self.log_alpha_optimizer = torch.optim.Adam([self.log_alpha], lr=alpha_lr)\n",
    "        self.target_entropy = target_entropy  # 目标熵的大小\n",
    "        self.gamma = gamma\n",
    "        self.tau = tau\n",
    "\n",
    "    def take_action(self, state):\n",
    "        state = torch.tensor(np.array(state), dtype=torch.float).to(device)\n",
    "        action = self.actor(state)[0]\n",
    "        return [action.item()]\n",
    "\n",
    "    def calc_target(self, rewards, next_states, dones, truncated):  # 计算目标Q值\n",
    "        next_actions, log_prob = self.actor(next_states)\n",
    "        entropy = -log_prob\n",
    "        q1_value = self.target_critic_1(next_states, next_actions)\n",
    "        q2_value = self.target_critic_2(next_states, next_actions)\n",
    "        next_value = torch.min(q1_value, q2_value) + self.log_alpha.exp() * entropy\n",
    "        td_target = rewards + self.gamma * next_value * (1 - dones | truncated)\n",
    "        return td_target\n",
    "\n",
    "    def soft_update(self, net, target_net):\n",
    "        for param_target, param in zip(target_net.parameters(), net.parameters()):\n",
    "            param_target.data.copy_(param_target.data * (1.0 - self.tau) + param.data * self.tau)\n",
    "\n",
    "    def update(self, transition_dict):\n",
    "        states = torch.tensor(transition_dict['states'], dtype=torch.float).to(device)\n",
    "        actions = torch.tensor(transition_dict['actions'], dtype=torch.float).view(-1, 1).to(device)\n",
    "        rewards = torch.tensor(transition_dict['rewards'], dtype=torch.float).view(-1, 1).to(device)\n",
    "        next_states = torch.tensor(transition_dict['next_states'], dtype=torch.float).to(device)\n",
    "        dones = torch.tensor(transition_dict['dones'], dtype=torch.int).view(-1, 1).to(device)\n",
    "        truncated = torch.tensor(transition_dict['truncated'], dtype=torch.int).view(-1, 1).to(device)\n",
    "        rewards = (rewards + 8.0) / 8.0  # 对倒立摆环境的奖励进行重塑\n",
    "\n",
    "        # 更新两个Q网络\n",
    "        td_target = self.calc_target(rewards, next_states, dones, truncated)\n",
    "        critic_1_loss = torch.mean(F.mse_loss(self.critic_1(states, actions), td_target.detach()))\n",
    "        critic_2_loss = torch.mean(F.mse_loss(self.critic_2(states, actions), td_target.detach()))\n",
    "        self.critic_1_optimizer.zero_grad()\n",
    "        critic_1_loss.backward()\n",
    "        self.critic_1_optimizer.step()\n",
    "        self.critic_2_optimizer.zero_grad()\n",
    "        critic_2_loss.backward()\n",
    "        self.critic_2_optimizer.step()\n",
    "\n",
    "        # 更新策略网络\n",
    "        new_actions, log_prob = self.actor(states)\n",
    "        entropy = -log_prob\n",
    "        q1_value = self.critic_1(states, new_actions)\n",
    "        q2_value = self.critic_2(states, new_actions)\n",
    "        actor_loss = torch.mean(-self.log_alpha.exp() * entropy - torch.min(q1_value, q2_value))\n",
    "        self.actor_optimizer.zero_grad()\n",
    "        actor_loss.backward()\n",
    "        self.actor_optimizer.step()\n",
    "\n",
    "        # 更新alpha值\n",
    "        alpha_loss = torch.mean((entropy - self.target_entropy).detach() * self.log_alpha.exp())\n",
    "        self.log_alpha_optimizer.zero_grad()\n",
    "        alpha_loss.backward()\n",
    "        self.log_alpha_optimizer.step()\n",
    "\n",
    "        self.soft_update(self.critic_1, self.target_critic_1)\n",
    "        self.soft_update(self.critic_2, self.target_critic_2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 环境模型，与PETS一致"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Swish(nn.Module):\n",
    "    ''' Swish激活函数 '''\n",
    "    def __init__(self):\n",
    "        super(Swish, self).__init__()\n",
    "\n",
    "    def forward(self, x):\n",
    "        return x * torch.sigmoid(x)\n",
    "\n",
    "\n",
    "def init_weights(m):\n",
    "    ''' 初始化模型权重 '''\n",
    "    def truncated_normal_init(t, mean=0.0, std=0.01):\n",
    "        torch.nn.init.normal_(t, mean=mean, std=std)\n",
    "        while True:\n",
    "            cond = (t < mean - 2 * std) | (t > mean + 2 * std)\n",
    "            if not torch.sum(cond):\n",
    "                break\n",
    "            t = torch.where(\n",
    "                cond,\n",
    "                torch.nn.init.normal_(torch.ones(t.shape, device=device),\n",
    "                                      mean=mean,\n",
    "                                      std=std), t)\n",
    "        return t\n",
    "\n",
    "    if type(m) == nn.Linear or isinstance(m, FCLayer):\n",
    "        truncated_normal_init(m.weight, std=1 / (2 * np.sqrt(m._input_dim)))\n",
    "        m.bias.data.fill_(0.0)\n",
    "\n",
    "\n",
    "class FCLayer(nn.Module):\n",
    "    ''' 集成之后的全连接层 '''\n",
    "    def __init__(self, input_dim, output_dim, ensemble_size, activation):\n",
    "        super(FCLayer, self).__init__()\n",
    "        self._input_dim, self._output_dim = input_dim, output_dim\n",
    "        self.weight = nn.Parameter(\n",
    "            torch.Tensor(ensemble_size, input_dim, output_dim).to(device))\n",
    "        self._activation = activation\n",
    "        self.bias = nn.Parameter(\n",
    "            torch.Tensor(ensemble_size, output_dim).to(device))\n",
    "\n",
    "    def forward(self, x):\n",
    "        return self._activation(\n",
    "            torch.add(torch.bmm(x, self.weight), self.bias[:, None, :]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "class EnsembleModel(nn.Module):\n",
    "    ''' 环境模型集成 '''\n",
    "    def __init__(self,\n",
    "                 state_dim,\n",
    "                 action_dim,\n",
    "                 model_alpha,\n",
    "                 ensemble_size=5,\n",
    "                 learning_rate=1e-3):\n",
    "        super(EnsembleModel, self).__init__()\n",
    "        # 输出包括均值和方差,因此是状态与奖励维度之和的两倍\n",
    "        self._output_dim = (state_dim + 1) * 2\n",
    "        self._model_alpha = model_alpha  # 模型损失函数中加权时的权重\n",
    "        self._max_logvar = nn.Parameter((torch.ones((1, self._output_dim // 2)).float() / 2).to(device), requires_grad=False)\n",
    "        self._min_logvar = nn.Parameter((-torch.ones((1, self._output_dim // 2)).float() * 10).to(device), requires_grad=False)\n",
    "\n",
    "        self.layer1 = FCLayer(state_dim + action_dim, 200, ensemble_size, Swish())\n",
    "        self.layer2 = FCLayer(200, 200, ensemble_size, Swish())\n",
    "        self.layer3 = FCLayer(200, 200, ensemble_size, Swish())\n",
    "        self.layer4 = FCLayer(200, 200, ensemble_size, Swish())\n",
    "        self.layer5 = FCLayer(200, self._output_dim, ensemble_size, nn.Identity())\n",
    "        self.apply(init_weights)  # 初始化环境模型中的参数\n",
    "        self.optimizer = torch.optim.Adam(self.parameters(), lr=learning_rate)\n",
    "\n",
    "    def forward(self, x, return_log_var=False):\n",
    "        ret = self.layer5(self.layer4(self.layer3(self.layer2(self.layer1(x)))))\n",
    "        mean = ret[:, :, :self._output_dim // 2]\n",
    "        # 在PETS算法中,将方差控制在最小值和最大值之间\n",
    "        logvar = self._max_logvar - F.softplus(self._max_logvar - ret[:, :, self._output_dim // 2:])\n",
    "        logvar = self._min_logvar + F.softplus(logvar - self._min_logvar)\n",
    "        return mean, logvar if return_log_var else torch.exp(logvar)\n",
    "\n",
    "    def loss(self, mean, logvar, labels, use_var_loss=True):\n",
    "        inverse_var = torch.exp(-logvar)\n",
    "        if use_var_loss:\n",
    "            mse_loss = torch.mean(torch.mean(torch.pow(mean - labels, 2) *\n",
    "                                             inverse_var,\n",
    "                                             dim=-1),\n",
    "                                  dim=-1)\n",
    "            var_loss = torch.mean(torch.mean(logvar, dim=-1), dim=-1)\n",
    "            total_loss = torch.sum(mse_loss) + torch.sum(var_loss)\n",
    "        else:\n",
    "            mse_loss = torch.mean(torch.pow(mean - labels, 2), dim=(1, 2))\n",
    "            total_loss = torch.sum(mse_loss)\n",
    "        return total_loss, mse_loss\n",
    "\n",
    "    def train(self, loss):\n",
    "        self.optimizer.zero_grad()\n",
    "        loss += self._model_alpha * torch.sum(self._max_logvar) - self._model_alpha * torch.sum(self._min_logvar)\n",
    "        loss.backward()\n",
    "        self.optimizer.step()\n",
    "\n",
    "\n",
    "class EnsembleDynamicsModel:\n",
    "    ''' 环境模型集成,加入精细化的训练 '''\n",
    "    def __init__(self, state_dim, action_dim, model_alpha=0.01, num_network=5):\n",
    "        self._num_network = num_network\n",
    "        self._state_dim, self._action_dim = state_dim, action_dim\n",
    "        self.model = EnsembleModel(state_dim,\n",
    "                                   action_dim,\n",
    "                                   model_alpha,\n",
    "                                   ensemble_size=num_network)\n",
    "        self._epoch_since_last_update = 0\n",
    "\n",
    "    def train(self,\n",
    "              inputs,\n",
    "              labels,\n",
    "              batch_size=64,\n",
    "              holdout_ratio=0.1,\n",
    "              max_iter=20):\n",
    "        # 设置训练集与验证集\n",
    "        permutation = np.random.permutation(inputs.shape[0])\n",
    "        inputs, labels = inputs[permutation], labels[permutation]\n",
    "        num_holdout = int(inputs.shape[0] * holdout_ratio)\n",
    "        train_inputs, train_labels = inputs[num_holdout:], labels[num_holdout:]\n",
    "        holdout_inputs, holdout_labels = inputs[:num_holdout], labels[:num_holdout]\n",
    "        holdout_inputs = torch.from_numpy(holdout_inputs).float().to(device)\n",
    "        holdout_labels = torch.from_numpy(holdout_labels).float().to(device)\n",
    "        holdout_inputs = holdout_inputs[None, :, :].repeat(\n",
    "            [self._num_network, 1, 1])\n",
    "        holdout_labels = holdout_labels[None, :, :].repeat(\n",
    "            [self._num_network, 1, 1])\n",
    "\n",
    "        # 保留最好的结果\n",
    "        self._snapshots = {i: (None, 1e10) for i in range(self._num_network)}\n",
    "\n",
    "        for epoch in itertools.count():\n",
    "            # 定义每一个网络的训练数据\n",
    "            train_index = np.vstack([\n",
    "                np.random.permutation(train_inputs.shape[0])\n",
    "                for _ in range(self._num_network)\n",
    "            ])\n",
    "            # 所有真实数据都用来训练\n",
    "            for batch_start_pos in range(0, train_inputs.shape[0], batch_size):\n",
    "                batch_index = train_index[:, batch_start_pos:batch_start_pos + batch_size]\n",
    "                train_input = torch.from_numpy(train_inputs[batch_index]).float().to(device)\n",
    "                train_label = torch.from_numpy(train_labels[batch_index]).float().to(device)\n",
    "\n",
    "                mean, logvar = self.model(train_input, return_log_var=True)\n",
    "                loss, _ = self.model.loss(mean, logvar, train_label)\n",
    "                self.model.train(loss)\n",
    "\n",
    "            with torch.no_grad():\n",
    "                mean, logvar = self.model(holdout_inputs, return_log_var=True)\n",
    "                _, holdout_losses = self.model.loss(mean,\n",
    "                                                    logvar,\n",
    "                                                    holdout_labels,\n",
    "                                                    use_var_loss=False)\n",
    "                holdout_losses = holdout_losses.cpu()\n",
    "                break_condition = self._save_best(epoch, holdout_losses)\n",
    "                if break_condition or epoch > max_iter:  # 结束训练\n",
    "                    break\n",
    "\n",
    "    def _save_best(self, epoch, losses, threshold=0.1):\n",
    "        updated = False\n",
    "        for i in range(len(losses)):\n",
    "            current = losses[i]\n",
    "            _, best = self._snapshots[i]\n",
    "            improvement = (best - current) / best\n",
    "            if improvement > threshold:\n",
    "                self._snapshots[i] = (epoch, current)\n",
    "                updated = True\n",
    "        self._epoch_since_last_update = 0 if updated else self._epoch_since_last_update + 1\n",
    "        return self._epoch_since_last_update > 5\n",
    "\n",
    "    def predict(self, inputs, batch_size=64):\n",
    "        inputs = np.tile(inputs, (self._num_network, 1, 1))\n",
    "        inputs = torch.tensor(inputs, dtype=torch.float).to(device)\n",
    "        mean, var = self.model(inputs, return_log_var=False)\n",
    "        return mean.detach().cpu().numpy(), var.detach().cpu().numpy()\n",
    "\n",
    "\n",
    "class FakeEnv:\n",
    "    def __init__(self, model):\n",
    "        self.model = model\n",
    "\n",
    "    def step(self, obs, act):\n",
    "        inputs = np.concatenate((obs, act), axis=-1)\n",
    "        ensemble_model_means, ensemble_model_vars = self.model.predict(inputs)\n",
    "        ensemble_model_means[:, :, 1:] += obs\n",
    "        ensemble_model_stds = np.sqrt(ensemble_model_vars)\n",
    "        ensemble_samples = ensemble_model_means + np.random.normal(\n",
    "            size=ensemble_model_means.shape) * ensemble_model_stds\n",
    "\n",
    "        num_models, batch_size, _ = ensemble_model_means.shape\n",
    "        models_to_use = np.random.choice(\n",
    "            [i for i in range(self.model._num_network)], size=batch_size)\n",
    "        batch_inds = np.arange(0, batch_size)\n",
    "        samples = ensemble_samples[models_to_use, batch_inds]\n",
    "        rewards, next_obs = samples[:, :1][0][0], samples[:, 1:][0]\n",
    "        return rewards, next_obs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MBPO"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "class MBPO:\n",
    "    def __init__(self, env, agent, fake_env, env_pool, model_pool,\n",
    "                 rollout_length, rollout_batch_size, real_ratio, num_episode):\n",
    "\n",
    "        self.env = env\n",
    "        self.agent = agent\n",
    "        self.fake_env = fake_env\n",
    "        self.env_pool = env_pool\n",
    "        self.model_pool = model_pool\n",
    "        self.rollout_length = rollout_length\n",
    "        self.rollout_batch_size = rollout_batch_size\n",
    "        self.real_ratio = real_ratio\n",
    "        self.num_episode = num_episode\n",
    "\n",
    "    def rollout_model(self):\n",
    "        observations, _, _, _, _, _ = self.env_pool.sample(self.rollout_batch_size)\n",
    "        for obs in observations:\n",
    "            for i in range(self.rollout_length):\n",
    "                action = self.agent.take_action(obs)\n",
    "                reward, next_obs = self.fake_env.step(obs, action)\n",
    "                self.model_pool.add(obs, action, reward, next_obs, False, False)\n",
    "                obs = next_obs\n",
    "\n",
    "    def update_agent(self, policy_train_batch_size=64):\n",
    "        env_batch_size = int(policy_train_batch_size * self.real_ratio)\n",
    "        model_batch_size = policy_train_batch_size - env_batch_size\n",
    "        for epoch in range(10):\n",
    "            env_obs, env_action, env_reward, env_next_obs, env_done, env_truncated = self.env_pool.sample(env_batch_size)\n",
    "            if self.model_pool.size() > 0:\n",
    "                model_obs, model_action, model_reward, model_next_obs, model_done, model_trunacted = self.model_pool.sample(\n",
    "                    model_batch_size)\n",
    "                obs = np.concatenate((env_obs, model_obs), axis=0)\n",
    "                action = np.concatenate((env_action, model_action), axis=0)\n",
    "                next_obs = np.concatenate((env_next_obs, model_next_obs), axis=0)\n",
    "                reward = np.concatenate((env_reward, model_reward), axis=0)\n",
    "                done = np.concatenate((env_done, model_done), axis=0)\n",
    "                truncated = np.concatenate((env_truncated, model_trunacted), axis=0)\n",
    "            else:\n",
    "                obs, action, next_obs, reward, done, truncated = env_obs, env_action, env_next_obs, env_reward, env_done, env_truncated\n",
    "            transition_dict = {\n",
    "                'states': obs,\n",
    "                'actions': action,\n",
    "                'next_states': next_obs,\n",
    "                'rewards': reward,\n",
    "                'dones': done,\n",
    "                'truncated': truncated,\n",
    "            }\n",
    "            self.agent.update(transition_dict)\n",
    "\n",
    "    def train_model(self):\n",
    "        obs, action, reward, next_obs, done, truncated = self.env_pool.return_all_samples()\n",
    "        inputs = np.concatenate((obs, action), axis=-1)\n",
    "        reward = np.array(reward)\n",
    "        labels = np.concatenate(\n",
    "            (np.reshape(reward, (reward.shape[0], -1)), next_obs - obs),\n",
    "            axis=-1)\n",
    "        self.fake_env.model.train(inputs, labels)\n",
    "\n",
    "    def explore(self):\n",
    "        obs, done, truncated, episode_return = self.env.reset()[0], False, False, 0\n",
    "        while not done | truncated:\n",
    "            action = self.agent.take_action(obs)\n",
    "            next_obs, reward, done, truncated, _ = self.env.step(action)\n",
    "            self.env_pool.add(obs, action, reward, next_obs, done, truncated)\n",
    "            obs = next_obs\n",
    "            episode_return += reward\n",
    "        return episode_return\n",
    "\n",
    "    def train(self):\n",
    "        logging.info('开始训练')\n",
    "        return_list = []\n",
    "        explore_return = self.explore()  # 随机探索采取数据\n",
    "        print('episode: 1, return: %d' % explore_return)\n",
    "        return_list.append(explore_return)\n",
    "\n",
    "        for i_episode in range(self.num_episode - 1):\n",
    "            logging.info(f'episode = {i_episode}')\n",
    "            obs, done, truncated, episode_return = self.env.reset()[0], False, False, 0\n",
    "            step = 0\n",
    "            while not done | truncated:\n",
    "                if step % 50 == 0:\n",
    "                    logging.info(f'in episode = {i_episode}/{self.num_episode}, executing: train and rollout model()')\n",
    "                    self.train_model()\n",
    "                    self.rollout_model()\n",
    "                action = self.agent.take_action(obs)\n",
    "                next_obs, reward, done, truncated, _ = self.env.step(action)\n",
    "                self.env_pool.add(obs, action, reward, next_obs, done, truncated)\n",
    "                obs = next_obs\n",
    "                episode_return += reward\n",
    "                \n",
    "                self.update_agent()\n",
    "                step += 1\n",
    "            return_list.append(episode_return)\n",
    "            print('episode: %d, return: %d' % (i_episode + 2, episode_return))\n",
    "            logging.info(f'episode = {i_episode} 结束')\n",
    "        return return_list\n",
    "\n",
    "\n",
    "class ReplayBuffer:\n",
    "    def __init__(self, capacity):\n",
    "        self.buffer = collections.deque(maxlen=capacity)\n",
    "\n",
    "    def add(self, state, action, reward, next_state, done, truncated):\n",
    "        self.buffer.append((state, action, reward, next_state, done, truncated))\n",
    "\n",
    "    def size(self):\n",
    "        return len(self.buffer)\n",
    "\n",
    "    def sample(self, batch_size):\n",
    "        if batch_size > len(self.buffer):\n",
    "            return self.return_all_samples()\n",
    "        else:\n",
    "            transitions = random.sample(self.buffer, batch_size)\n",
    "            state, action, reward, next_state, done, truncated = zip(*transitions)\n",
    "            return np.array(state), action, reward, np.array(next_state), done, truncated\n",
    "\n",
    "    def return_all_samples(self):\n",
    "        all_transitions = list(self.buffer)\n",
    "        state, action, reward, next_state, done, truncated = zip(*all_transitions)\n",
    "        return np.array(state), action, reward, np.array(next_state), done, truncated"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 初始化参数并训练\n",
    "\n",
    "几乎没有提升，暂时没找到问题，[原代码地址](https://hrl.boyuai.com/chapter/3/%E5%9F%BA%E4%BA%8E%E6%A8%A1%E5%9E%8B%E7%9A%84%E7%AD%96%E7%95%A5%E4%BC%98%E5%8C%96)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 1, return: -1481\n",
      "episode: 2, return: -1677\n",
      "episode: 3, return: -1394\n",
      "episode: 4, return: -1548\n",
      "episode: 5, return: -1593\n",
      "episode: 6, return: -1618\n",
      "episode: 7, return: -1553\n",
      "episode: 8, return: -1561\n",
      "episode: 9, return: -1660\n",
      "episode: 10, return: -1414\n",
      "episode: 11, return: -1581\n",
      "episode: 12, return: -1252\n",
      "episode: 13, return: -1596\n",
      "episode: 14, return: -1178\n",
      "episode: 15, return: -1462\n",
      "episode: 16, return: -1363\n",
      "episode: 17, return: -1156\n",
      "episode: 18, return: -1581\n",
      "episode: 19, return: -1685\n",
      "episode: 20, return: -1215\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAHKCAYAAAAXTN/fAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACSxUlEQVR4nO3deXxTZdYH8N9N0iRNmm5pS0sXdiggIAVEFEERFzrgNqCOG+DMvC6o4+DMO+PojAq+wygzOICzuI8rLuDgyKiACgLKvhTKIggttLRA9z378/6RPDdJm7Zpm+Tem57v55OPkpvlpmmb0/Oc5xyBMcZACCGEEEL8qKQ+AUIIIYQQOaIgiRBCCCEkAAqSCCGEEEICoCCJEEIIISQACpIIIYQQQgKgIIkQQgghJAAKkgghhBBCAqAgiRBCCCEkAAqSCCGEEEICoCCJEEIk8vTTT0MQBBQXF3f5vv3798eVV14Z8nMihHhRkESIQvzrX/+CIAgwGo2oqqrq8LbXX389BEHAvHnzxOuKi4shCIJ4UavVyM7Oxr333ovS0lK/+8+bN8/vtsnJyRg/fjz+/ve/w263t3m+kpISLFy4ECNGjIDRaITRaMSoUaPw5JNPorq6OiSvP1Rafw1ycnJwww03YPv27VKfWq/icDjwt7/9DSaTSepTIaRdGqlPgBDSNVarFX//+9/x+9//PuDxgwcPYv369dBqtQGP33nnnbjrrrvQ3NyMnTt34i9/+Qu+/fZbFBYWIiYmxu+2n3/+ORhjKC8vx/vvv48FCxZg69atWLVqld9tbrvtNsTExOD+++/H+PHj4XA4sH37dixfvhxvvvkmPv/8c1x00UWh+yL00PTp0/HYY4/BYrHg+++/x4svvojJkyfj008/RX5+vtSnF9VKS0vx/vvv4x//+AdOnTol9ekQ0jFGCFGEN954gwFgl156KUtLS2MtLS0Bb3fnnXey3NxclpiYyObOnSteX1RUxACwp556yu/2P/vZzxgAtn//fvG6uXPnsta/HlwuF5s0aRIDwM6cOcMYY+zYsWPMaDSyYcOGsbNnz7Y5l2PHjrHU1FTWr18/1tjY2L0XHmIA/L4ujDF29OhRBoBNmzYtoufy1FNPMQCsqKioy/ft168fmzp1asjPKdx+8YtfsPj4ePbkk0+y2267rc33GSFyQstthCjMz3/+c1y4cAFvv/12m2NnzpzBBx98gAULFqChoSGox7Pb7YiJiUFGRkaHtxMEAZdddhkAiMtzzz77LJqamvD222+jb9++be4zbNgw/OlPf8Lp06fx6quvdnour7/+Oi655BIYjUYYDAZMnDgR77//vt9t+LLjxo0b8cQTT6Bv375ISEjAzJkz2ywbBis3Nxdms9nv/j/88APmzJmDpKQkGAwGTJs2DXv37vW7H1/S/OKLLzBu3DgYDAaMHDkS//73v9s8x+bNmzF58mQYDAakpaXhl7/8ZZuly82bN0MQBPzrX/8K6npffIm0s+v5Y7322mt46qmnkJGRAZPJhLlz56K5uRm7d+/G5ZdfDoPBgKFDh+L111/v6EsnmjlzJvR6Perr6/2uP3ToEARBwJ/+9CcAwIIFC1BWVobFixdDr9cH9diESIWCJEIUZtq0aRg/fjyWLVsGxpjfsWXLliE+Ph7z58+H0+kMeH+bzYbGxkaUlpbixRdfxLvvvoslS5agT58+nT53QUEBVCoVBg8eDMYY1q1bh1GjRmHChAnt3mf27NlQqVT47LPPOnzshx56CD/96U/Rr18/vPzyy3jxxRdhNBrxk5/8BMuWLWtz+1//+tc4c+YMli9fjgcffBBffPEF7rjjjk5fQyClpaWorq7GsGHDAAAnTpzAxIkTsXv3bjz33HP45z//iaqqKlx11VU4d+6c33337NmDX//611iwYAFefPFFNDU1Yc6cOThx4oR4m40bN+Kaa65BfX09/vrXv2LZsmXYs2cP/va3v3XrfENh6dKlOHPmDFasWIFbbrkFb731FubOnYsbbrgBN998M1599VXo9Xr89Kc/xYEDBzp9vHnz5sFqtWLt2rV+17/zzjvQaDRifdyQIUNgNBpD/4IICQepU1mEkODw5baioiL2wQcfMADs008/FY9XVVUxo9HInnjiCcZY22UlvtzW+nLvvfey8vJyv+fiy20NDQ2straWHTp0iD344IMMAFu4cCFjjLGKigoGgN16662dnntaWhrLzc1t9/iuXbsYAHbffff5Xe9yudhll13GDAYDq62t9fs63HbbbX63vfPOOxkAVlpa2uG5AGB33nkna2hoYOfOnWPr169nF198MdPr9Wznzp2MMcZ+9KMfsfj4eHFZkTHGysrKmF6vF18/f6z4+Hh27tw58bqNGzcyAOzZZ58Vrxs+fDjr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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "real_ratio = 0.5\n",
    "env_name = 'Pendulum-v1'\n",
    "env = gym.make(env_name)\n",
    "num_episodes = 20\n",
    "actor_lr = 5e-4\n",
    "critic_lr = 5e-3\n",
    "alpha_lr = 1e-3\n",
    "hidden_dim = 128\n",
    "gamma = 0.98\n",
    "tau = 0.005  # 软更新参数\n",
    "buffer_size = 10000\n",
    "target_entropy = -1\n",
    "model_alpha = 0.01  # 模型损失函数中的加权权重\n",
    "state_dim = env.observation_space.shape[0]\n",
    "action_dim = env.action_space.shape[0]\n",
    "action_bound = env.action_space.high[0]  # 动作最大值\n",
    "\n",
    "rollout_batch_size = 1000\n",
    "rollout_length = 1  # 推演长度k, 推荐更多尝试\n",
    "model_pool_size = rollout_batch_size * rollout_length\n",
    "\n",
    "agent = SAC(state_dim, hidden_dim, action_dim, action_bound, actor_lr,\n",
    "            critic_lr, alpha_lr, target_entropy, tau, gamma)\n",
    "model = EnsembleDynamicsModel(state_dim, action_dim, model_alpha)\n",
    "fake_env = FakeEnv(model)\n",
    "env_pool = ReplayBuffer(buffer_size)\n",
    "model_pool = ReplayBuffer(model_pool_size)\n",
    "\n",
    "logging.basicConfig(filename='log/MBPO.txt', \n",
    "            filemode=\"w\",\n",
    "            format=\"%(asctime)s %(name)s:%(levelname)s:%(message)s\",\n",
    "            datefmt=\"%d-%M-%Y %H:%M:%S\", \n",
    "            level=logging.DEBUG)\n",
    "mbpo = MBPO(env, agent, fake_env, env_pool, model_pool, rollout_length,\n",
    "            rollout_batch_size, real_ratio, num_episodes)\n",
    "\n",
    "return_list = mbpo.train()\n",
    "\n",
    "episodes_list = list(range(len(return_list)))\n",
    "plt.plot(episodes_list, return_list)\n",
    "plt.xlabel('Episodes')\n",
    "plt.ylabel('Returns')\n",
    "plt.title('MBPO on {}'.format(env_name))\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
